【TAIL CAMP】NLP Task:句子语义相似度预测

主要目标

  • 学习nltk,gensim等基本自然语言处理工具
  • 学习机器学习基本工具Sklearn
  • 相似度计算理论与方法学习

Day1 nltk,python

学习使用nltk,python,同时掌握nlp的一些基本处理技巧和方法,例如tokenize,stem等

今天主要把推荐书籍的第五章节前面的内容,选择性看一遍(根据自身的情况选择),同时把里面涉及的python代码敲一敲(做文中的example)。主要学习python的数据类型和使用,以及nlp的一些基本概念。

  1. 安装nltk 安装教程

  2. 学习《Natural Language Processing with Python》一书前6章节,进行文本tokenize,stem等操作

Day 2: gensim

今天我们主要学习使用nlp中比较流行的一种词向量生成方法word2vec,gensim是其在python环境下的实现。除此之外,gensim本身还带有其他的一些例如特征提取,主题模型计算等功能

  1. 安装gensim 安装教程

  2. Gensim主要功能介绍,学习tf-idf提取等功能

  3. Gensim工具例子: 学习使用gensim来提取,词向量等特征

Day3: scikit-learn

scikit-learn安装和例子学习,学习使用工具进行拟合。

scikit-learn是机器学习领域广泛被使用的一个python工具,里面集成了大量的机器学习算法。今天我们学习其中的Ridge Regression 和 svr方法,Ridge Regression使用比较简单,svr是深度学习前的主流方法(里面现在也集成了深度学习的工具,有兴趣的同学可以尝试)。后面可以选择使用这些方法对相似度数据进行拟合。

  1. 官网主页

  2. 安装 scikit-learn 教程

  3. 学习使用 scikit-learn 进行拟合

    1. 若由于某些原因链接打不开,可以从主页点进去试试

      Ridge Regression:主页 -> Regression -> 1.1.2 Ridge Regression

      svr: 主页 -> Regression -> 1.4.2. Regression

    2. 对拟合概念不太理解的同学可参考:

      维基百科

      Andrew Ng课程第三章

Day4&5:阅读论文,学习语义相似度计算的方法

前面几天已经学习了一些基本的工具和方法,接下来需要开始思考如何使用自己所学习到的内容(可以不在这几天的课程之类)来完成相似度预测的任务。以下几篇论文作为参考方法,可以采用提到的任意一种方法作为最终的实现方案,有余力的同学也可以实现多个方案。

参考阅读材料:

http://nlp.arizona.edu/SemEval-2017/pdf/SemEval025.pdf

http://www.aclweb.org/anthology/S/S14/S14-2039.pdf

http://nlp.arizona.edu/SemEval-2017/pdf/SemEval001.pdf

Day6: 参考方案,进行相似度预测

如果大家已经完成自己系统的搭建并提交预测数据,那么恭喜。如果没有,可以参考本链接 中的做法,计算两个句子的相似度后再和人工的语义打分进行拟合。最后提交结果。

个人总结

主办方自诩难度比价高,任务量比较大,但这一论断应该是就新手而言。有过相关大数据与人工智能开发经验的人很多概念都应该已经掌握了,甚至能直接上手建模型了。事实情况也确实如此,任务发布三天半之后,超过一半的学员已经有过结果提交记录了,打榜也比较激烈,证明前期的学习难度确实不大。